There are many potentially hazardous side effects to detecting hardware adapters in current personal computers. Much of the risk is due to the inherently ad hoc detection methods used by system software. These methods are less than robust for non-PNP (Plug and Play) bus architectures. The PNP bus architectures, such as ISA PNP, Microchannel, and PCI, have designed-in hardware enumeration and dynamic resource allocation. Unfortunately, the majority of personal computer (PC) systems are in part non-PNP.
Intel x86 operating systems have accordingly devised many ad hoc algorithms for detecting hardware and their associated hardware resources, such as input/output (I/O) ports, interrupt request line levels (IRQ levels), and direct memory access (DMA) channels. In the execution of this "hardware snooping," an adapter may be placed into an unknown state which could have hazardous side effects to the operation of that adapter, the PC, or the software executing on the PC.
For example, a hardware detection module, referred to as a "snooper," may inadvertently use an I/O port decoded by an adapter, of which this snooper has no architectural knowledge. Since there are many hardware detection methods, or "snippets," and each cannot possibly have knowledge of all other adapters, there is a risk of potentially hazardous effects to a system's integrity. These effects might manifest themselves in an unpredictable fashion. Some of the most damaging effects could include data corruption, system hangs, or system software traps.
Additionally, the arrival of hybrid systems, which incorporate PNP architectures (such as ISA PNP), while retaining support for legacy adapters (non-PNP ISA), has increased the need for hardware detection methods to safely set the dynamically configurable PNP cards. The approaching prevalence of such systems into the marketplace warrants investigation into reducing the risk of such methods, from both system integrity and service cost standpoints.
Some prior art operating systems have a known hardware base and limit their hardware detection appropriately. Other prior art operating systems have a similar hardware detection phase and knowledge of previous detection. However, these operating systems take an all or nothing stance. The operating system either performs hardware detection or assumes the system is configured as was previously detected. Some prior art operating systems even allow a limited detection of a certain class of adapters (e.g., SCSI adapters, network interface cards, etc.) to help limit the scope of snooping.
Consequently, it would be desirable to have a method and apparatus for detecting adapter cards and associated resources in an information handling system which would reduce the risk of resource conflicts. In addition, it would be desirable to have a method and system which would limit the potentially hazardous side effects caused by detecting hardware adapters in the system.